// ============================== 导出表单密码 ============================== //

export default {
  // —————————————————————————————— 公共覆盖 —————————————————————————————— //

  bind: { type: String, default: 'password' }, // 绑定键名，触发 @change 事件
  tipPre: { type: String, default: '请输入' }, // 提示前缀

  // —————————————————————————————— 私有校验 (优先级最高) —————————————————————————————— //

  reg: { type: RegExp, default: null }, // 正则表达式
  regErr: { type: String, default: '不符合规则' }, // 正则错误信息

  // —————————————————————————————— 其他校验 (优先级递减) —————————————————————————————— //

  min: { type: Number, default: 0 }, // 最小长度
  max: { type: Number, default: 20 }, // 最大长度
  minErr: { type: String, default: '最少 {min} 位' }, // 最小长度错误信息 (自动将 {min} 替换为实际值)

  same: { type: String, default: '' }, // 用于比较相同的键名 (适用于确认密码框)
  sameErr: { type: String, default: '两次密码不一致' },

  letter: { type: Boolean, default: false },
  letterErr: { type: String, default: '必须包含字母' },

  upper: { type: Boolean, default: false },
  upperErr: { type: String, default: '必须包含大写字母' },

  lower: { type: Boolean, default: false },
  lowerErr: { type: String, default: '必须包含小写字母' },

  number: { type: Boolean, default: false },
  numberErr: { type: String, default: '必须包含数字' },

  special: { type: Boolean, default: false },
  specialErr: { type: String, default: '必须包含特殊字符' },
  specialChars: { type: String, default: '' }, // 特殊字符合集 (为空则表示全部非汉字的特殊字符)
  specialCharsErr: { type: String, default: '特殊字符只能为 {specialChars}' },

  noSpecial: { type: Boolean, default: false },
  noSpecialErr: { type: String, default: '不能包含特殊字符' },

  noChinese: { type: Boolean, default: true },
  noChineseErr: { type: String, default: '不能包含中文字符' },

  two: { type: Boolean, default: false },
  twoErr: { type: String, default: '至少包含大写、小写、数字、特殊字符中的两种' },

  three: { type: Boolean, default: false },
  threeErr: { type: String, default: '至少包含大写、小写、数字、特殊字符中的三种' },

  all: { type: Boolean, default: false },
  allErr: { type: String, default: '必须包含大写、小写、数字、特殊字符' },
}
